package com.check.utils;

import java.util.Arrays;
import java.util.List;

/**
 * @description: 将非标准数据格式化为标准化数据
 * @Author: zyt
 */
public class DataUtil {

    /**
     * 格式化数据
     * @param data
     */
    public static List<List<String>> dataFormat(List<List<String>> data){
        if(data==null ||  data.size()==0){
            return data;
        }

        int size = data.get(0).size();
        // 原来存在序号
        if (data.get(0).get(0).equals("序号")){
            for (int i = 1; i < data.size(); i++) {
                List<String> list = data.get(i);
                // 设置序号
                list.set(0,(i)+"");
                // 下面代码来规范长度
                formatLength(data, size, i, list);
            }
            return data;
        }
        // 添加序号
        data.get(0).add(0,"序号");
        size ++;
        for (int i = 1; i < data.size(); i++) {
            List<String> list = data.get(i);
            // 设置序号
            list.add(0,(i)+"");
            // 下面代码来规范长度
            formatLength(data, size, i, list);

        }
        return data;
    }

    private static void formatLength(List<List<String>> data, int size, int i, List<String> list) {
        if (list.size()==size){
            return;
        }

        if (list.size()>size){
            data.set(i,list.subList(0,size));
        }

        if (list.size()<size){
            List<String> emptyList = getEmpty(size-list.size());
            list.addAll(emptyList);
        }
    }


    public static List<String> getEmpty(int length){
        String[] emptyStringList = new String[length];
        for(int i=0;i<length;i++){
            emptyStringList[i] = "";
        }
        return Arrays.asList(emptyStringList);
    }
}
